package com.yunkeji.dao.vo;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.yunkeji.common.annotation.ExcelDictFormat;
import com.yunkeji.common.convert.ExcelDictConvert;

import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 充值明细视图对象 ykj_pay_detail
 *
 * @author zhang
 * @date 2024-07-10
 */
@Data
@ExcelIgnoreUnannotated
public class PayDetailVo implements Serializable {

    private static final long serialVersionUID = 1L;

    /** 自增主键 */
    @ExcelProperty(value = "自增主键")
    private Long id;

    @ExcelProperty(value = "爱洞ID")
    private Long platformId;

    @ExcelProperty(value = "邀请人ID")
    private Long platformIdParent;

    @ExcelIgnore private Long idParent;

    /** 用户id */
    @ExcelProperty(value = "用户id")
    @ExcelIgnore
    private Long userId;

    /** 平台订单号 */
    @ExcelProperty(value = "平台订单号")
    private String orderId;

    /** 第三方订单号 */
    @ExcelProperty(value = "第三方订单号")
    private String thirdId;

    /** 客户端类型,1陌对安卓/3mo聊安卓,2陌对iOS/4mo聊 iOS */
    @ExcelProperty(value = "客户端类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_branch")
    private Integer branch;

    /** 充值结果,1已支付/0未支付 */
    @ExcelProperty(value = "充值结果", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "recharge_result")
    private Integer status;

    /** 充值前金币余额 */
    @ExcelProperty(value = "充值前金币余额")
    @ExcelIgnore
    private BigDecimal beforeGoldBalance;

    /** 人民币充值金额 */
    @ExcelProperty(value = "人民币充值金额")
    private BigDecimal cnyPrice;

    /** 充值获得的金币 */
    @ExcelProperty(value = "充值获得的金币")
    @ExcelIgnore
    private BigDecimal gold;

    /** 支付方式(微信支付宝花呗) */
    @ExcelProperty(value = "支付方式", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "app_pay_type")
    private Integer payType;

    /** 充值后金币余额 */
    @ExcelProperty(value = "充值后金币余额")
    @ExcelIgnore
    private BigDecimal afterGoldBalance;

    /** 充值类型1=金币2=会员 */
    @ExcelProperty(value = "充值类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "recharge_type")
    private Integer rechargeType;

    /** 充值VIP获得月数 */
    @ExcelProperty(value = "充值VIP获得月数")
    @ExcelIgnore
    private Integer month;

    /** 充值VIP后剩余到期时间 */
    @ExcelProperty(value = "充值VIP后剩余到期时间")
    @ExcelIgnore
    private Date afterExpireTime;

    /** 充值VIP前剩余到期时间 */
    @ExcelProperty(value = "充值VIP前剩余到期时间")
    @ExcelIgnore
    private Date beforeExpireTime;

    /** 创建时间 */
    @ExcelProperty(value = "充值时间")
    @ColumnWidth(20)
    private Date createTime;

    /** 更新时间 */
    @ExcelProperty(value = "支付时间")
    @ColumnWidth(20)
    private Date updateTime;

    /** 备注 */
    @ExcelProperty(value = "备注")
    private String remark;

    /** 性别 */
    private Integer sex;
}
